Many of today's computer applications send data to and receive data from remote data stores and remote computer applications. For example, a software application on a client device may use an internet connection to send data to and receive data from a remote database or a remote database application. In some instances, a large number of requests for data may occur. For example, a software application may make frequent requests for particular data from a remote database or application. Such scenarios may often occur for various service providers. In many cases, multiple different applications and different clients each make requests for data from the same or different remote databases or applications.
Due to the large number of requests by a given client application for data from a given data source, a significant portion of time may be spent waiting for data to be returned to the software application. In some cases, additional computer equipment or data storage devices may be used in an attempt to reduce the amount of time for a client application to retrieve data. However, the configuration of additional computer equipment and the maintenance of the additional computer equipment may incur significant cost and time. For example, a fleet of storage servers may introduce a complicated and costly computer infrastructure to maintain. Moreover, keeping track of the status and health of each storage server in the fleet and replacing failed equipment may become a burdensome processes.
While embodiments are described herein by way of example for several embodiments and illustrative drawings, those skilled in the art will recognize that embodiments are not limited to the embodiments or drawings described. It should be understood, that the drawings and detailed description thereto are not intended to limit embodiments to the particular form disclosed, but on the contrary, the intention is to cover all modifications, equivalents and alternatives falling within the spirit and scope as defined by the appended claims. The headings used herein are for organizational purposes only and are not meant to be used to limit the scope of the description or the claims. As used throughout this application, the word “may” is used in a permissive sense (i.e., meaning having the potential to), rather than the mandatory sense (i.e., meaning must). Similarly, the words “include,” “including,” and “includes” mean including, but not limited to.